package com.miao.controller;

import com.miao.utils.ExcelUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;

/**
 * Description:
 */
@RestController
public class UserExportController {

    //直接导
    @GetMapping("/export")
    public void export(HttpServletResponse response) {
        // 表头数据
        List<Object> head = Arrays.asList("姓名","年龄","性别","头像");
        // 用户1数据
        List<Object> user1 = new ArrayList<>();
        user1.add("诸葛亮");
        user1.add(60);
        user1.add("男");
        user1.add("https://profile.csdnimg.cn/A/7/3/3_sunnyzyq");
        // 用户2数据
        List<Object> user2 = new ArrayList<>();
        user2.add("大乔");
        user2.add(28);
        user2.add("女");
        user2.add("https://profile.csdnimg.cn/6/1/9/0_m0_48717371");
        // 将数据汇总
        List<List<Object>> sheetDataList = new ArrayList<>();
        sheetDataList.add(head);
        sheetDataList.add(user1);
        sheetDataList.add(user2);
        // 导出数据
        ExcelUtils.export(response,"用户表", sheetDataList);
    }


    //直接将地址导出图片
    @GetMapping("/exportImage")
    public void exportImage(HttpServletResponse response) throws MalformedURLException {
        // 表头数据
        List<Object> head = Arrays.asList("姓名","年龄","性别","头像");
        // 用户1数据
        List<Object> user1 = new ArrayList<>();
        user1.add("诸葛亮");
        user1.add(60);
        user1.add("男");
        user1.add(new URL("http://47.99.66.199:9999/group1/M00/00/00/rBcwNWKqjBKAb6rvAAr02QoVs6Y565.jpg"));
        List<Object> user2 = new ArrayList<>();
        user2.add("大乔");
        user2.add(28);
        user2.add("女");
        user2.add(new URL("http://47.99.66.199:9999/group1/M00/00/00/rBcwNWKpd_OAeAfZAAEQAPQ-BZg881.jpg"));
        // 将数据汇总
        List<List<Object>> sheetDataList = new ArrayList<>();
        sheetDataList.add(head);
        sheetDataList.add(user1);
        sheetDataList.add(user2);
        // 导出数据
        ExcelUtils.export(response,"用户表2", sheetDataList);
    }

    //下拉框
    @GetMapping("/exportXiaLa")
    public void exportXiaLa(HttpServletResponse response) throws MalformedURLException {
        // 表头数据
        List<Object> head = Arrays.asList("姓名","年龄","性别","地址");
        // 用户1数据
        List<Object> user1 = new ArrayList<>();
        user1.add("诸葛亮");
        user1.add(60);
        user1.add("男");
        user1.add("成都");
        List<Object> user2 = new ArrayList<>();
        user2.add("大乔");
        user2.add(28);
        user2.add("女");
        user2.add("北京");
        // 将数据汇总
        List<List<Object>> sheetDataList = new ArrayList<>();
        sheetDataList.add(head);
        sheetDataList.add(user1);
        sheetDataList.add(user2);
        //------------------------------------------
        //设置下拉框
        Map<Integer,List<String>> selectMap = new HashMap<>();
        selectMap.put(2,Arrays.asList("男","女"));
        selectMap.put(3,Arrays.asList("北京","上海","成都","重庆"));
        //------------------------------------------
        // 导出数据

        //                                                          ---------
        ExcelUtils.export(response,"用户表2", sheetDataList,selectMap);
        //                                                          ---------

    }

    //横向
    @GetMapping("/exportHeng")
    public void exportHeng(HttpServletResponse response) throws MalformedURLException {
        // 表头数据，相当于后面的，都和最后一个字段合并了，注意：只能是两个，不能是多个，否则下标越界异常
        //                                                        -----------------------
        List<Object> head = Arrays.asList("姓名","年龄","性别","地址",ExcelUtils.COLUMN_MERGE);
        //                                                        -----------------------

        // 用户1数据
        List<Object> user1 = new ArrayList<>();
        user1.add("诸葛亮");
        user1.add(60);
        user1.add("男");
        user1.add("成都");
        user1.add("大祥区88号");
        List<Object> user2 = new ArrayList<>();
        user2.add("大乔");
        user2.add(28);
        user2.add("女");
        user2.add("北京");
        user2.add("华夏66号");
        // 将数据汇总
        List<List<Object>> sheetDataList = new ArrayList<>();
        sheetDataList.add(head);
        sheetDataList.add(user1);
        sheetDataList.add(user2);
        // 导出数据
        ExcelUtils.export(response,"用户表2", sheetDataList);
    }

    //纵向
    @GetMapping("/exportZong")
    public void exportZong(HttpServletResponse response) throws MalformedURLException {
        // 表头数据
        List<Object> head = Arrays.asList("朝代","姓名","年龄","性别","地址");
        // 用户1数据
        List<Object> user1 = new ArrayList<>();
        user1.add("三国");
        user1.add("诸葛亮");
        user1.add(60);
        user1.add("男");
        user1.add("成都");
        List<Object> user2 = new ArrayList<>();
        user2.add(ExcelUtils.ROW_MERGE);  //这一行不写，以上面合并的为准
        user2.add("大乔");
        user2.add(28);
        user2.add("女");
        user2.add("北京");
        // 将数据汇总
        List<List<Object>> sheetDataList = new ArrayList<>();
        sheetDataList.add(head);
        sheetDataList.add(user1);
        sheetDataList.add(user2);
        // 导出数据
        ExcelUtils.export(response,"用户表--纵向", sheetDataList);
    }
}
